add some half-float based formats
authorØyvind Kolås <pippin@gimp.org>
Wed, 25 Apr 2012 23:07:00 +0000 (01:07 +0200)
committerØyvind Kolås <pippin@gimp.org>
Wed, 25 Apr 2012 23:15:30 +0000 (01:15 +0200)
babl/babl-ids.h
babl/base/model-gray.c
babl/base/model-rgb.c

index 47b5aa526f18fd8948b52b74f0f998ce71de7cac..a42d09b03b6beb1e7be8aa940a0cde60f8506df2 100644 (file)
@@ -91,6 +91,8 @@ enum {
   BABL_FORMAT_BASE = 100000,
   BABL_SRGB,
   BABL_SRGBA,
+  BABL_RGB_HALF,
+  BABL_RGBA_HALF,
   BABL_RGB_FLOAT,
   BABL_RGBA_FLOAT,
   BABL_RGBA_DOUBLE,
@@ -100,8 +102,10 @@ enum {
   BABL_RGB_U8,
   BABL_RGBA_U8,
   BABL_RGBA_U16,
+  BABL_CMYK_HALF,
   BABL_CMYK_FLOAT,
   BABL_CMYK_ALPHA_FLOAT,
+  BABL_CMYK_ALPHA_HALF,
   BABL_YCBCR411,
   BABL_YCBCR422,
   BABL_YCBCR420,
index 5582c782361cf17d608b57ef1504866cfe07aa49..11013939a45335631e76fdac36534a2d321c1a3b 100644 (file)
 static void components (void);
 static void models (void);
 static void conversions (void);
+static void formats (void);
 
 void babl_base_model_gray (void)
 {
   components ();
   models ();
   conversions ();
+  formats ();
 }
 
 static void
@@ -585,3 +587,47 @@ conversions (void)
     NULL
   );
 }
+
+static void
+formats (void)
+{
+  babl_format_new (
+    babl_model_from_id (BABL_GRAY_ALPHA),
+    babl_type_from_id (BABL_HALF),
+    babl_component_from_id (BABL_LUMINANCE),
+    babl_component_from_id (BABL_ALPHA),
+    NULL);
+
+  babl_format_new (
+    babl_model_from_id (BABL_GRAY_ALPHA_PREMULTIPLIED),
+    babl_type_from_id (BABL_HALF),
+    babl_component_from_id (BABL_LUMINANCE_MUL_ALPHA),
+    babl_component_from_id (BABL_ALPHA),
+    NULL);
+
+  babl_format_new (
+    babl_model_from_id (BABL_GRAY),
+    babl_type_from_id (BABL_HALF),
+    babl_component_from_id (BABL_LUMINANCE),
+    NULL);
+
+  babl_format_new (
+    babl_model_from_id (BABL_GRAY_GAMMA_2_2_ALPHA),
+    babl_type_from_id (BABL_HALF),
+    babl_component_from_id (BABL_LUMA),
+    babl_component_from_id (BABL_ALPHA),
+    NULL);
+
+  babl_format_new (
+    babl_model_from_id (BABL_GRAY_GAMMA_2_2_ALPHA_PREMULTIPLIED),
+    babl_type_from_id (BABL_HALF),
+    babl_component_from_id (BABL_LUMA_MUL_ALPHA),
+    babl_component_from_id (BABL_ALPHA),
+    NULL);
+
+  babl_format_new (
+    babl_model_from_id (BABL_GRAY_GAMMA_2_2),
+    babl_type_from_id (BABL_HALF),
+    babl_component_from_id (BABL_LUMA),
+    NULL);
+}
index df7f7b0f960d036eeeceb365725df8c2cd282f3a..0f4e751bc940d9d11a7c695025e7c31b0d33ba4f 100644 (file)
@@ -516,6 +516,60 @@ formats (void)
     babl_component_from_id (BABL_BLUE),
     NULL);
 
+  babl_format_new (
+    "id", BABL_RGB_HALF,
+    babl_model_from_id (BABL_RGB),
+    babl_type_from_id (BABL_HALF),
+    babl_component_from_id (BABL_RED),
+    babl_component_from_id (BABL_GREEN),
+    babl_component_from_id (BABL_BLUE),
+    NULL);
+
+  babl_format_new (
+    "id", BABL_RGBA_HALF,
+    babl_model_from_id (BABL_RGBA),
+    babl_type_from_id (BABL_HALF),
+    babl_component_from_id (BABL_RED),
+    babl_component_from_id (BABL_GREEN),
+    babl_component_from_id (BABL_BLUE),
+    babl_component_from_id (BABL_ALPHA),
+    NULL);
+
+  babl_format_new (
+    babl_model_from_id (BABL_RGBA_PREMULTIPLIED),
+    babl_type_from_id (BABL_HALF),
+    babl_component_from_id (BABL_RED_MUL_ALPHA),
+    babl_component_from_id (BABL_GREEN_MUL_ALPHA),
+    babl_component_from_id (BABL_BLUE_MUL_ALPHA),
+    babl_component_from_id (BABL_ALPHA),
+    NULL);
+
+  babl_format_new (
+    babl_model_from_id (BABL_RGB_GAMMA_2_2),
+    babl_type_from_id (BABL_HALF),
+    babl_component_from_id (BABL_RED_GAMMA_2_2),
+    babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+    babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+    NULL);
+
+  babl_format_new (
+    babl_model_from_id (BABL_RGBA_GAMMA_2_2),
+    babl_type_from_id (BABL_HALF),
+    babl_component_from_id (BABL_RED_GAMMA_2_2),
+    babl_component_from_id (BABL_GREEN_GAMMA_2_2),
+    babl_component_from_id (BABL_BLUE_GAMMA_2_2),
+    babl_component_from_id (BABL_ALPHA),
+    NULL);
+
+  babl_format_new (
+    babl_model_from_id (BABL_RGBA_GAMMA_2_2_PREMULTIPLIED),
+    babl_type_from_id (BABL_HALF),
+    babl_component_from_id (BABL_RED_GAMMA_2_2_MUL_ALPHA),
+    babl_component_from_id (BABL_GREEN_GAMMA_2_2_MUL_ALPHA),
+    babl_component_from_id (BABL_BLUE_GAMMA_2_2_MUL_ALPHA),
+    babl_component_from_id (BABL_ALPHA),
+    NULL);
+
 #ifdef XXXX
   babl_format_new (
     "id", BABL_RGB565,